{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 学习率与优化器\n",
    "在本例中，通过比较**同样结构**，**同样数据集**，**相同训练轮数**下**不同优化器**以及**不同初始学习率**下训练的值得出优化器与初始学习率对训练的影响。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在模型训练过程中涉及到一个关键概念——**学习率**。学习率代表着模型学习的速率，学习率的值越大，损失函数的变化速度越快。较高的学习率大小可以使模型快速收敛，但是可能会导致模型在局部极小值周围震荡。较小的学习率虽然可以让模型在局部极小值周围收敛，但是收敛速度很慢。所以合理的学习率是在底部使用大学习率，在顶部使用小学习率来进行梯度下降。\n",
    "\n",
    "对于学习率这样十分重要但是调整难度很大的参数，有几种自适应学习率算法进行学习率的调整。\n",
    "下面我们采用不同的优化器，对相同的模型结构和数据集训练情况下分别进行训练。我们选择的不同的优化器为：\n",
    "\n",
    "- rmsprop\n",
    "- adam\n",
    "- SGD（stochastic gradient descent）\n",
    "\n",
    "这些自适应学习率算法不需要开发者进行学习率的设置而是模型在训练过程中进行学习率的衰减。\n",
    "#### 注意：本次实验每一个训练都是只包含5个轮次的训练，每一个5轮次训练大约耗时20分钟。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "实验之前我们进行keras，keras_applications版本配置以及数据集下载。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Looking in indexes: http://repo.myhuaweicloud.com/repository/pypi/simple\n",
      "Collecting keras_applications\n",
      "\u001b[?25l  Downloading http://repo.myhuaweicloud.com/repository/pypi/packages/71/e3/19762fdfc62877ae9102edf6342d71b28fbfd9dea3d2f96a882ce099b03f/Keras_Applications-1.0.8-py3-none-any.whl (50kB)\n",
      "\u001b[K     |████████████████████████████████| 51kB 65.1MB/s eta 0:00:01\n",
      "\u001b[?25hCollecting keras\n",
      "\u001b[?25l  Downloading http://repo.myhuaweicloud.com/repository/pypi/packages/5e/10/aa32dad071ce52b5502266b5c659451cfd6ffcbf14e6c8c4f16c0ff5aaab/Keras-2.2.4-py2.py3-none-any.whl (312kB)\n",
      "\u001b[K     |████████████████████████████████| 317kB 63.9MB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied, skipping upgrade: h5py in /home/ma-user/anaconda3/envs/TensorFlow-1.13.1/lib/python3.6/site-packages (from keras_applications) (2.8.0)\n",
      "Requirement already satisfied, skipping upgrade: numpy>=1.9.1 in /home/ma-user/anaconda3/envs/TensorFlow-1.13.1/lib/python3.6/site-packages (from keras_applications) (1.16.2)\n",
      "Collecting keras-preprocessing>=1.0.5 (from keras)\n",
      "\u001b[?25l  Downloading http://repo.myhuaweicloud.com/repository/pypi/packages/28/6a/8c1f62c37212d9fc441a7e26736df51ce6f0e38455816445471f10da4f0a/Keras_Preprocessing-1.1.0-py2.py3-none-any.whl (41kB)\n",
      "\u001b[K     |████████████████████████████████| 51kB 60.7MB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied, skipping upgrade: six>=1.9.0 in /home/ma-user/modelarts-sdk (from keras) (1.12.0)\n",
      "Requirement already satisfied, skipping upgrade: scipy>=0.14 in /home/ma-user/anaconda3/envs/TensorFlow-1.13.1/lib/python3.6/site-packages (from keras) (1.0.0)\n",
      "Requirement already satisfied, skipping upgrade: pyyaml in /home/ma-user/anaconda3/envs/TensorFlow-1.13.1/lib/python3.6/site-packages (from keras) (3.12)\n",
      "Installing collected packages: keras-applications, keras-preprocessing, keras\n",
      "  Found existing installation: Keras-Applications 1.0.2\n",
      "    Uninstalling Keras-Applications-1.0.2:\n",
      "      Successfully uninstalled Keras-Applications-1.0.2\n",
      "  Found existing installation: Keras-Preprocessing 1.0.1\n",
      "    Uninstalling Keras-Preprocessing-1.0.1:\n",
      "      Successfully uninstalled Keras-Preprocessing-1.0.1\n",
      "  Found existing installation: Keras 2.2.0\n",
      "    Uninstalling Keras-2.2.0:\n",
      "      Successfully uninstalled Keras-2.2.0\n",
      "Successfully installed keras-2.2.4 keras-applications-1.0.8 keras-preprocessing-1.1.0\n"
     ]
    }
   ],
   "source": [
    "!pip install --upgrade keras_applications==1.0.6 keras==2.2.4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Successfully download file modelarts-labs/end2end/image_recognition/dog_and_cat_25000.tar.gz from OBS to local ./dog_and_cat_25000.tar.gz\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "if os.path.exists('./data') == False:\n",
    "    from modelarts.session import Session\n",
    "    session = Session()\n",
    "\n",
    "    session.download_data(\n",
    "        bucket_path=\"modelarts-labs/end2end/image_recognition/dog_and_cat_25000.tar.gz\",\n",
    "        path=\"./dog_and_cat_25000.tar.gz\")\n",
    "\n",
    "    # 使用tar命令解压资源包\n",
    "    !tar xf ./dog_and_cat_25000.tar.gz\n",
    "\n",
    "    # 清理压缩包\n",
    "    !rm -f ./dog_and_cat_25000.tar.gz"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 引入相关的包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.applications.vgg16 import VGG16\n",
    "from keras.preprocessing import image\n",
    "from keras.applications.resnet50 import preprocess_input, decode_predictions\n",
    "import numpy as np\n",
    "\n",
    "from keras.applications.mobilenetv2 import MobileNetV2\n",
    "from keras.preprocessing import image\n",
    "from keras.models import Model\n",
    "from keras.layers import Dense, GlobalAveragePooling2D\n",
    "from keras import backend as K\n",
    "from keras.models import load_model\n",
    "\n",
    "from keras.preprocessing.image import ImageDataGenerator\n",
    "import os\n",
    "from PIL import Image"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 加载数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def load_data():\n",
    "    dirname = \"./data\"\n",
    "    path = \"./data\"\n",
    "\n",
    "    num_train_samples = 25000\n",
    "\n",
    "    x_train = np.empty((num_train_samples, 224,224,3), dtype='uint8')\n",
    "    y_train = np.empty((num_train_samples,1), dtype='uint8')\n",
    "    index = 0\n",
    "    for file in os.listdir(\"./data\"):\n",
    "        image = Image.open(os.path.join(dirname,file)).resize((224,224))\n",
    "        image = np.array(image)\n",
    "        x_train[index,:,:,:] = image\n",
    "\n",
    "        if \"cat\" in file:\n",
    "            y_train[index,0] =1\n",
    "        elif \"dog\" in file:\n",
    "            y_train[index,0] =0\n",
    "\n",
    "        index += 1\n",
    "    return (x_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(25000, 224, 224, 3)\n",
      "(25000, 1)\n"
     ]
    }
   ],
   "source": [
    "(x_train, y_train) = load_data()\n",
    "print(x_train.shape)\n",
    "print(y_train.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.utils import np_utils\n",
    "def process_data(x_train,y_train):\n",
    "    x_train = x_train.astype(np.float32)\n",
    "    x_train /= 255\n",
    "    n_classes = 2\n",
    "    y_train = np_utils.to_categorical(y_train, n_classes)\n",
    "    return x_train,y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(25000, 224, 224, 3)\n",
      "(25000, 2)\n"
     ]
    }
   ],
   "source": [
    "x_train,y_train= process_data(x_train,y_train)\n",
    "print(x_train.shape)\n",
    "print(y_train.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 构建模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def build_model(base_model):\n",
    "    x = base_model.output\n",
    "    x = GlobalAveragePooling2D()(x)\n",
    "    predictions = Dense(2, activation='softmax')(x)\n",
    "    model = Model(inputs=base_model.input, outputs=predictions)\n",
    "    print(type(model))\n",
    "    return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /home/ma-user/anaconda3/envs/TensorFlow-1.13.1/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n"
     ]
    }
   ],
   "source": [
    "base_model = VGG16(weights=None, include_top=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'keras.engine.training.Model'>\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_1 (InputLayer)         (None, None, None, 3)     0         \n",
      "_________________________________________________________________\n",
      "block1_conv1 (Conv2D)        (None, None, None, 64)    1792      \n",
      "_________________________________________________________________\n",
      "block1_conv2 (Conv2D)        (None, None, None, 64)    36928     \n",
      "_________________________________________________________________\n",
      "block1_pool (MaxPooling2D)   (None, None, None, 64)    0         \n",
      "_________________________________________________________________\n",
      "block2_conv1 (Conv2D)        (None, None, None, 128)   73856     \n",
      "_________________________________________________________________\n",
      "block2_conv2 (Conv2D)        (None, None, None, 128)   147584    \n",
      "_________________________________________________________________\n",
      "block2_pool (MaxPooling2D)   (None, None, None, 128)   0         \n",
      "_________________________________________________________________\n",
      "block3_conv1 (Conv2D)        (None, None, None, 256)   295168    \n",
      "_________________________________________________________________\n",
      "block3_conv2 (Conv2D)        (None, None, None, 256)   590080    \n",
      "_________________________________________________________________\n",
      "block3_conv3 (Conv2D)        (None, None, None, 256)   590080    \n",
      "_________________________________________________________________\n",
      "block3_pool (MaxPooling2D)   (None, None, None, 256)   0         \n",
      "_________________________________________________________________\n",
      "block4_conv1 (Conv2D)        (None, None, None, 512)   1180160   \n",
      "_________________________________________________________________\n",
      "block4_conv2 (Conv2D)        (None, None, None, 512)   2359808   \n",
      "_________________________________________________________________\n",
      "block4_conv3 (Conv2D)        (None, None, None, 512)   2359808   \n",
      "_________________________________________________________________\n",
      "block4_pool (MaxPooling2D)   (None, None, None, 512)   0         \n",
      "_________________________________________________________________\n",
      "block5_conv1 (Conv2D)        (None, None, None, 512)   2359808   \n",
      "_________________________________________________________________\n",
      "block5_conv2 (Conv2D)        (None, None, None, 512)   2359808   \n",
      "_________________________________________________________________\n",
      "block5_conv3 (Conv2D)        (None, None, None, 512)   2359808   \n",
      "_________________________________________________________________\n",
      "block5_pool (MaxPooling2D)   (None, None, None, 512)   0         \n",
      "_________________________________________________________________\n",
      "global_average_pooling2d_1 ( (None, 512)               0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 2)                 1026      \n",
      "=================================================================\n",
      "Total params: 14,715,714\n",
      "Trainable params: 14,715,714\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model = build_model(base_model)\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 定义优化器与训练\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### rmsprop\n",
    "在下面的测试中，我们使用优化器为**rmsprop**，训练轮数为5，可以看到训练初期的模型指数变化情况。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "import keras \n",
    "opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6)\n",
    "model.compile(loss='categorical_crossentropy',\n",
    "              optimizer=opt,\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.callbacks import ModelCheckpoint, EarlyStopping\n",
    "es = EarlyStopping(monitor='val_acc', baseline=0.9, patience=30, verbose=1, mode='auto')\n",
    "callbacks = [es]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "开始训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /home/ma-user/anaconda3/envs/TensorFlow-1.13.1/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 18750 samples, validate on 6250 samples\n",
      "Epoch 1/5\n",
      "18750/18750 [==============================] - 168s 9ms/step - loss: 0.6715 - acc: 0.5895 - val_loss: 0.6318 - val_acc: 0.6414\n",
      "Epoch 2/5\n",
      "18750/18750 [==============================] - 153s 8ms/step - loss: 0.6241 - acc: 0.6555 - val_loss: 0.7510 - val_acc: 0.5550\n",
      "Epoch 3/5\n",
      "18750/18750 [==============================] - 153s 8ms/step - loss: 0.5826 - acc: 0.7009 - val_loss: 0.5227 - val_acc: 0.7523\n",
      "Epoch 4/5\n",
      "18750/18750 [==============================] - 153s 8ms/step - loss: 0.5320 - acc: 0.7400 - val_loss: 0.4935 - val_acc: 0.7645\n",
      "Epoch 5/5\n",
      "18750/18750 [==============================] - 154s 8ms/step - loss: 0.4848 - acc: 0.7730 - val_loss: 0.4404 - val_acc: 0.8040\n"
     ]
    }
   ],
   "source": [
    "history_rmsprop = model.fit(x=x_train, \n",
    "                  y=y_train, \n",
    "                  batch_size=32, \n",
    "                  epochs=5, \n",
    "                  verbose=1, \n",
    "                  callbacks=callbacks, \n",
    "                  validation_split=0.25, \n",
    "                  shuffle=True, \n",
    "                  initial_epoch=0, \n",
    "                 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 绘制训练 & 验证的准确率值\n",
    "plt.plot(history_rmsprop.history['acc'])\n",
    "plt.plot(history_rmsprop.history['val_acc'])\n",
    "plt.title('Model accuracy')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'Test'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制训练 & 验证的损失值\n",
    "plt.plot(history_rmsprop.history['loss'])\n",
    "plt.plot(history_rmsprop.history['val_loss'])\n",
    "plt.title('Model loss')\n",
    "plt.ylabel('Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'Test'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Adam\n",
    "在下面的例子中，加载新的模型，使用**优化器Adam**，训练轮数为5，可以看到训练初期的模型指数变化情况。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'keras.engine.training.Model'>\n"
     ]
    }
   ],
   "source": [
    "base_model = VGG16(weights=None, include_top=False)\n",
    "model_adam = build_model(base_model)\n",
    "opt = keras.optimizers.Adam(lr=0.0001, decay=1e-6)\n",
    "model_adam.compile(loss='categorical_crossentropy',\n",
    "              optimizer=opt,\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "开始训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 18750 samples, validate on 6250 samples\n",
      "Epoch 1/5\n",
      "18750/18750 [==============================] - 157s 8ms/step - loss: 0.6928 - acc: 0.5049 - val_loss: 0.6929 - val_acc: 0.5013\n",
      "Epoch 2/5\n",
      "18750/18750 [==============================] - 152s 8ms/step - loss: 0.6677 - acc: 0.5748 - val_loss: 0.6268 - val_acc: 0.6442\n",
      "Epoch 3/5\n",
      "18750/18750 [==============================] - 151s 8ms/step - loss: 0.6080 - acc: 0.6685 - val_loss: 0.6029 - val_acc: 0.6670\n",
      "Epoch 4/5\n",
      "18750/18750 [==============================] - 153s 8ms/step - loss: 0.5671 - acc: 0.7067 - val_loss: 0.5263 - val_acc: 0.7410\n",
      "Epoch 5/5\n",
      "18750/18750 [==============================] - 151s 8ms/step - loss: 0.5306 - acc: 0.7381 - val_loss: 0.4824 - val_acc: 0.7754\n"
     ]
    }
   ],
   "source": [
    "history_adam = model_adam.fit(x=x_train, \n",
    "                  y=y_train, \n",
    "                  batch_size=32, \n",
    "                  epochs=5, \n",
    "                  verbose=1, \n",
    "                  callbacks=callbacks, \n",
    "                   validation_split=0.25,  \n",
    "                  shuffle=True, \n",
    "                  initial_epoch=0\n",
    "                 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 绘制训练 & 验证的准确率值\n",
    "plt.plot(history_adam.history['acc'])\n",
    "plt.plot(history_adam.history['val_acc'])\n",
    "plt.title('Model accuracy')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'Test'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制训练 & 验证的损失值\n",
    "plt.plot(history_adam.history['loss'])\n",
    "plt.plot(history_adam.history['val_loss'])\n",
    "plt.title('Model loss')\n",
    "plt.ylabel('Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'Test'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SGD\n",
    "在下面的例子中，加载新的模型，使用**优化器SGD**，训练轮数为5，可以看到训练初期的模型指数变化情况。可以看到SGD作为随机梯度下降模型，在训练初期较少的轮数下，表现并不稳定。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'keras.engine.training.Model'>\n"
     ]
    }
   ],
   "source": [
    "base_model = VGG16(weights=None, include_top=False)\n",
    "model_sgd = build_model(base_model)\n",
    "opt = keras.optimizers.SGD(lr=0.0001, decay=1e-6)\n",
    "model_sgd.compile(loss='categorical_crossentropy',\n",
    "              optimizer=opt,\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "开始训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 18750 samples, validate on 6250 samples\n",
      "Epoch 1/5\n",
      "18750/18750 [==============================] - 151s 8ms/step - loss: 0.6932 - acc: 0.4981 - val_loss: 0.6932 - val_acc: 0.5056\n",
      "Epoch 2/5\n",
      "18750/18750 [==============================] - 149s 8ms/step - loss: 0.6932 - acc: 0.4981 - val_loss: 0.6932 - val_acc: 0.5053\n",
      "Epoch 3/5\n",
      "18750/18750 [==============================] - 148s 8ms/step - loss: 0.6932 - acc: 0.4974 - val_loss: 0.6932 - val_acc: 0.5027\n",
      "Epoch 4/5\n",
      "18750/18750 [==============================] - 149s 8ms/step - loss: 0.6932 - acc: 0.4789 - val_loss: 0.6932 - val_acc: 0.4768\n",
      "Epoch 5/5\n",
      "18750/18750 [==============================] - 149s 8ms/step - loss: 0.6932 - acc: 0.4602 - val_loss: 0.6932 - val_acc: 0.4510\n"
     ]
    }
   ],
   "source": [
    "history_sgd = model_sgd.fit(x=x_train, \n",
    "                  y=y_train, \n",
    "                  batch_size=32, \n",
    "                  epochs=5, \n",
    "                  verbose=1, \n",
    "                  callbacks=callbacks, \n",
    "                  validation_split=0.25,\n",
    "                  shuffle=True, \n",
    "                  initial_epoch=0, \n",
    "                 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 绘制训练 & 验证的准确率值\n",
    "plt.plot(history_sgd.history['acc'])\n",
    "plt.plot(history_sgd.history['val_acc'])\n",
    "plt.title('Model accuracy')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'Test'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Av8Ot1tlZoMBJE0jmKarKykbuMrMJgD/J6lJuK+5wHXR+jyipXZKEukJ+/jhoDPJzS9g08YNJCcl0qxpUwA++eST76zQcDCjR49m0KBBNG/ePJolO+dciaL6xRczG09wbiiy7f9FPDfg1vAR2WcvwRV4RfdXABT7jU8z63+QOnqW0N7vIOVXGRkZGXw+fx65+QX86je/JyE5lWt+cRMt0tNITi77f+LRo0fTvXt3DyXnXMzEz7cx3WFLTkygQVoyKam1SEgQX2/exbtvvMLY558mNzeX0047jccff5yCggKGDx/O3LlzMTOuvfZamjVrxty5cxkyZAhpaWnlGmE551xF8VCqaG/fAes+r9h9Nj8OzvneYhglSklKoGPTunz4yRz+99abPP3qO7RoWIff3fZLxo4dS4cOHdi0aROffx7UuW3bNtLT03nsscd4/PHH6datW8XW75xzZeShVE0lSHz28VSWfj6XS8/rS0GBsW/fXpq1bMXZZ5/N0qVLufHGGzn33HM566yzYl2uc84BHkoVrxwjmmgzM6688kr+/Oc/s2NvLt9s28O+vAJ2ksynn83lvXcnMGrUKF577TWeeuqpWJfrnHMx//Ksi6L+/fvzyiuvsGnTJuqlJtMocT+52zfw1Zp1LFufQ5+Bg/nTn/7EZ599BkC9evXYsaPKrcbknKtGfKRUjR133HH84Q9/oH///hQUFJCcnMwTTzxBLYMrf3I1+QUFJCQkcM/fgtHd8OHDufrqq/1CB+dczET11hXVUWXduiLazIycvXl8s20PufkFNKydQosGqSQllm3wXBXfs3Mudsp66wofKdVQhSuQ162VxIYde9m0Yz85e3NpXj+VRnUq5qaCzjlXXn5OqYbzFcidc/HEQ6mCVPVp0PKsQF7V36tzLn55KFWA1NRUNm/eXOX/si7LCuRmxubNm0lNTY1xtc656sjPKVWA1q1bk52dTSxuABhNBXkFbNmznzVfGbWSEkivnUxyYgKpqam0bt269B0451w5eShVgOTkZNq3bx/rMqIiv8AYO2sV9729lF378ri655HceGabci306pxzZeXTd+6gEhPET05uy/u39eaCE1rxxJQvGfDgVCYsXFflpyudc/HHQ8mVSUbdWjzw4+P593WnUrdWEj978VOuen42qzbvjnVpzrlqxEPJlctJ7Rrx1o1n8Ltzj2Hm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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制训练 & 验证的损失值\n",
    "plt.plot(history_sgd.history['loss'])\n",
    "plt.plot(history_sgd.history['val_loss'])\n",
    "plt.title('Model loss')\n",
    "plt.ylabel('Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'Test'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**下面的训练中学习率的初始赋值与上一次训练相比由0.0001变为0.001**\n",
    "下面的训练结果并不出色，对比我们之前的Adam优化器，这次的训练几乎没有收敛。因为过大的学习率，导致模型在局部最优附近震荡，无法获得好的结果。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'keras.engine.training.Model'>\n"
     ]
    }
   ],
   "source": [
    "base_model = VGG16(weights=None, include_top=False)\n",
    "model_large_lr = build_model(base_model)\n",
    "opt = keras.optimizers.Adam(lr=0.001, decay=1e-6)\n",
    "model_large_lr.compile(loss='categorical_crossentropy',\n",
    "              optimizer=opt,\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "开始训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 18750 samples, validate on 6250 samples\n",
      "Epoch 1/5\n",
      "18750/18750 [==============================] - 152s 8ms/step - loss: 0.6939 - acc: 0.5018 - val_loss: 0.6932 - val_acc: 0.4944\n",
      "Epoch 2/5\n",
      "18750/18750 [==============================] - 151s 8ms/step - loss: 0.6932 - acc: 0.4954 - val_loss: 0.6933 - val_acc: 0.4944\n",
      "Epoch 3/5\n",
      "18750/18750 [==============================] - 150s 8ms/step - loss: 0.6932 - acc: 0.4993 - val_loss: 0.6931 - val_acc: 0.5056\n",
      "Epoch 4/5\n",
      "18750/18750 [==============================] - 151s 8ms/step - loss: 0.6932 - acc: 0.4974 - val_loss: 0.6932 - val_acc: 0.4944\n",
      "Epoch 5/5\n",
      "18750/18750 [==============================] - 150s 8ms/step - loss: 0.6932 - acc: 0.5005 - val_loss: 0.6931 - val_acc: 0.5056\n"
     ]
    }
   ],
   "source": [
    "history_large_lr = model_large_lr.fit(x=x_train, \n",
    "                  y=y_train, \n",
    "                  batch_size=32, \n",
    "                  epochs=5, \n",
    "                  verbose=1, \n",
    "                  callbacks=callbacks, \n",
    "                  validation_split=0.25,\n",
    "                  shuffle=True, \n",
    "                  initial_epoch=0, \n",
    "                 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制训练 & 验证的准确率值\n",
    "plt.plot(history_large_lr.history['acc'])\n",
    "plt.plot(history_large_lr.history['val_acc'])\n",
    "plt.title('Model accuracy')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'Test'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history_large_lr.history['loss'])\n",
    "plt.plot(history_large_lr.history['val_loss'])\n",
    "plt.title('Model loss')\n",
    "plt.ylabel('Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'Test'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 思考\n",
    "\n",
    "以上的优化器对比都是在训练初期轮数较少的情况下进行，但是在轮数较多或者出现鞍点等情况时，不同的优化器都有不一样的表现。可以尝试用更多的轮数对比不同的优化器，重新审视各个模型在训练各个阶段的表现。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "TensorFlow-1.13.1",
   "language": "python",
   "name": "tensorflow-1.13.1"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
